home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / feel0_89.lha / Feel / Src / table.h < prev    next >
C/C++ Source or Header  |  1993-07-01  |  924b  |  31 lines

  1. extern LispObject Fn_tablep(LispObject*);
  2. extern LispObject Fn_table_parameters(LispObject*);
  3. extern LispObject Fn_table_ref(LispObject*);
  4. extern LispObject Fn_table_ref_setter(LispObject*);
  5. /* NB make_table in in global.h */
  6. extern LispObject make_table(LispObject*);
  7. extern int hash(char *);
  8.  
  9. #define TREF(tab,key)            EUCALL_2(Fn_table_ref, tab,key)
  10. #define TREF_UPDATE(tab,key,val) EUCALL_3(Fn_table_ref_setter,tab,key,val)
  11. #define TABLE_PARAMS(tab)        EUCALL_1(Fn_table_parameters,tab)
  12.  
  13. /* 
  14.  * Definition of new table structure
  15.  */
  16.  
  17. #define table_values(x)        (slotref(x,0))
  18. #define table_population(x)     (slotref(x,1))
  19. #define table_threshold(x)     (slotref(x,2))
  20. #define table_comparator(x)    (slotref(x,4))
  21. #define table_hash_fn(x)    (slotref(x,5))
  22. #define table_fill(x)        (slotref(x,6))
  23.  
  24. #define N_SLOTS_IN_TABLE 7
  25.  
  26. /* Internal values */
  27. #define MIN_TABLE_SIZE     16
  28.  
  29. #define KEYOF(x)    CAR(x)
  30. #define VALOF(x)    CDR(x)
  31.